package com.briup.myblog.aop;

import com.briup.myblog.exception.CustomerException;
import com.briup.myblog.utils.UserInfoUtil;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

import java.util.Map;

/**
 * @Author lining
 * @Date 2022/6/15
 */
@Slf4j
//@Aspect
//@Component
public class RoleAspect {
    //定义切入点和切入点规则，但是不对LoginController类中的login进行切入(若想使用注解类加&&@annotation(注解类名))
    @Pointcut("execution(* com.briup.myblog.web.controller.*.*(..)) " +
            "&& !execution(* com.briup.myblog.web.controller.LoginController.login(..))"+
            "&& !execution(* com.briup.myblog.web.controller.BaseUserController.findUserById(..))")
    public void pointCut() {

    }

    @Before("pointCut()")
    public void roleAdvice() {
        //获取到该方法的请求url，如果请求url是非 /login 进行权限判断
        Map<String, Object> userInfo = UserInfoUtil.getUserInfo();
        if(userInfo == null){
            throw new CustomerException("切面类没有提供token,无法进行");
        }
    }
}
